Laravel 5のDBのmigration
from Eloquent
Eloquentでモデルを作成しておけばマイグレーションも容易?
いいえ。LaravelはEloquent(Active recordみたいなもの)を定義してもmigrationはやってくれません
Djangoとかはやってくれるらしい
別途migration scriptを書く必要があります。ここではその手順をまとめます
マイグレーションの手順
Database: Migrations - Laravel - The PHP Framework For Web Artisans(和訳)
マイグレーションクラスを作成する
php artisan make:migration create_tweets_table
スキーマを書く
マイグレーションを実行してDBにテーブルを作成する
php artisan migrate
単一のファイルのみのマイグレーションはできなそう?
はじめからやりなおす
php artisan migrate:refresh
ダミーデータを作りたいときはseedingをする
Laravel 5でDBのseeding
artisan make:migrationで指定できる--createと--tableはなにをするのか?
indexをはりたい
Database: Migrations - Laravel - The PHP Framework For Web Artisans
bigIncremets('id')をすると自動的にprimary keyになる
IDカラムはprimary keyでしょ!という思想
Auto-incrementing UNSIGNED BIGINT (primary key) equivalent column.
bigIncrements('id')->primary()とかするとmigrationでエラーになる
https://qiita.com/luccafort/items/fb078bcb342eb14b8c59#原因
トラブル
$table->timestamps()でcreate_at, updated_atをつくると型がtimestampになってしまう
→Laravel DBのtimestampを使うときにハマったこと
php artisan migrate:refreshで全部のテーブルが消し飛ぶ。一部のテーブルだけrefreshしたい
基本的にそういう事はできないのだが、migrationの情報を管理しているテーブルを書き換えるとできる
やり方:https://stackoverflow.com/a/45473710
初期開発時以外ではやるべきではない(migrationスクリプトを新規追加するべき)
ロールバックしたい
Herokuのデプロイ時に自動でDBのmigrationをする#5cb312b63f442500001263f6
#Laravel_5